package com.snailhd.framework.util.base;

import java.util.HashMap;

/**
 * @author hd
 * @date 2020-08-19 08:54
 */
public class ParseUrlUtil {

    private HashMap<String,String> strUrlParas;



    public ParseUrlUtil(String url) {
        super();
        this.strUrlParas = new HashMap<>();
        parser(url);
    }


    public String get(String key){
        return strUrlParas.get(key);
    }

    public String getOrDefault(String key,String defaultStr){
        return strUrlParas.getOrDefault(key,defaultStr);
    }


    /**
     *
     * @param url 地址
     */
    private void parser(String url){
        strUrlParas.clear();
//		传递的URL参数
        String strUrl;
        String strUrlParams;


//		解析访问地址
        if(url.contains("?")){
            String[] strUrlPatten = url.split("\\?");
            strUrl = strUrlPatten[0];
            strUrlParams = strUrlPatten[1];

        }else{
            strUrl = url;
            strUrlParams = url;
        }

        strUrlParas.put("URL", strUrl);
//		解析参数
        String[] params;
        if(strUrlParams.contains("&")){
            params = strUrlParams.split("&");
        }else{
            params = new String[] {strUrlParams};
        }

//		保存参数到参数容器
        for(String p:params){
            if(p.contains("=")) {
                String[] param = p.split("=");
                if(param.length==1){
                    strUrlParas.put(param[0],"");
                }else{

                    String key = param[0];
                    String value = param[1];

                    strUrlParas.put(key, value);
                }
            }else {
                strUrlParas.put("errorParam",p);
            }
        }

    }

}
